package core;

import java.sql.SQLException;
import constants.ProjectConstants;

public class Reserva {

	private Integer idReserva;
	private String tipoAviao;
	private String titulo;
	private String locais;
	private String partida;
	private String chegada;
	private String lugares;
	private String login;
	private String tipoPagamento;
	private Integer quantPagamento;
	private Integer idViagem;
	private Integer preco;

	private EstadoReserva estadoActual;

	public void setState(int state) {
		switch(state){
			case ProjectConstants.ACTIVO:
				this.estadoActual = new ReservaActiva();
				break;
			case ProjectConstants.FECHADO:
				this.estadoActual = new ReservaExpirada();
				break;
			case ProjectConstants.CANCELADO:
				this.estadoActual = new ReservaCancelada();
				break;
			default:
				break;
		}
	}
	
	public int cancelaReserva() throws SQLException, ClassNotFoundException {
		return this.estadoActual.cancela(this);
	}

	public int expiraReserva() throws SQLException, ClassNotFoundException {
		return this.estadoActual.expira(this);
	}

	public Integer getIdReserva() {
		return idReserva;
	}

	public void setIdReserva(Integer idReserva) {
		this.idReserva = idReserva;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public String getLocais() {
		return locais;
	}

	public void setLocais(String locais) {
		this.locais = locais;
	}

	public String getPartida() {
		return partida;
	}

	public void setPartida(String partida) {
		this.partida = partida;
	}

	public String getChegada() {
		return chegada;
	}

	public void setChegada(String chegada) {
		this.chegada = chegada;
	}

	public String getLugares() {
		return lugares;
	}

	public void setLugares(String lugares) {
		this.lugares = lugares;
	}

	public Integer getQuantPagamento() {
		return quantPagamento;
	}

	public void setQuantPagamento(Integer quantPagamento) {
		this.quantPagamento = quantPagamento;
	}

	public String getTipoAviao() {
		return tipoAviao;
	}

	public void setTipoAviao(String tipoAviao) {
		this.tipoAviao = tipoAviao;
	}

	public String getTipoPagamento() {
		return tipoPagamento;
	}

	public void setTipoPagamento(String tipoPagamento) {
		this.tipoPagamento = tipoPagamento;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public int getIdViagem() {
		return idViagem;
	}

	public void setIdViagem(int idViagem) {
		this.idViagem = idViagem;
	}

	public int getPreco() {
		return preco;
	}

	public void setPreco(int preco) {
		this.preco = preco;
	}

}